package com.cmc.cloud.cmclink.doc.vo.specialcargoapplyvo;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;

import java.util.Date;
import java.util.List;

/**
 * 特种货审批主信息 Base VO，提供给添加、修改、详细的子 VO 使用
 * 如果子 VO 存在差异的字段，请不要添加到这里，影响 Swagger 文档生成
 *
 * @author codegen
 */
@Schema(description = "特种货主页查询返回对象")
@Data
@EqualsAndHashCode()
@ToString(callSuper = true)
public class ApplyAndVoyageInfoVO {

    private Long id;

    @Schema(description = "申请号")
    private String applyNo;

    @Schema(description = "申请类型")
    private String applyType;

    @Schema(description = "客户参考号")
    private String referenceNo;

    @Schema(description = "订舱号")
    private String bookingNo;

    @Schema(description = "超级白名单号")
    private String praNo;

    @Schema(description = "船舶号")
    private String vesselCode;

    @Schema(description = "航线")
    private String voyageEx;

    @Schema(description = "接舱方")
    private String spaceOwner;

    @Schema(description = "装货港")
    private String polCode;

    @Schema(description = "卸货港")
    private String podCode;

    @Schema(description = "接货港")
    private String porCode;

    @Schema(description = "目的地")
    private String delCode;

    @Schema(description = "申请状态")
    private String applyStatus;

    @Schema(description = "申请人")
    private String applyUser;

    @Schema(description = "申请时间")
    private String applyTime;

    @Schema(description = "申请备注")
    private String applyRemark;

    @Schema(description = "接舱方")
    private String carrier;

    @Schema(description = "是否有附件")
    private Integer attach;

    @Schema(description = "数据源")
    private String dataSource;

    @Schema(description = "预计离港时间")
    private String polEtd;

    @Schema(description = "vesselCode+voyageEx")
    private String vslVoy;

    @Schema(description = "POL-POD approveStatus")
    private String polPodStatus;

    @Schema(description = "创建人")
    private String creator;

    @Schema(description = "审批人")
    private String approver;

    @Schema(description = "审批时间")
    private String approverTime;

    @Schema(description = "是否内支线")
    private Boolean inlandCargo;

    @Schema(description = "操作时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createTime;

    private List<ApplyApproverVO> approvers;

}
